from django.contrib import admin
from django.utils.html import format_html

from apps.UserProfile.models import UserProfile



# Register your models here.
class UserAdmin(admin.ModelAdmin):
    list_display = ('id',
                    'user_ip',
                    'user_birthday_date',
                    'user_birthday_time',
                    'user_sex','add_time',
                    'is_paid',
                    'view_detail')

    # 禁用“添加”权限
    def has_add_permission(self, request):
        return False

    # 禁用“修改”权限
    def has_change_permission(self, request, obj=None):
        return False

    # 禁用“删除”权限
    def has_delete_permission(self, request, obj=None):
        return False

    class Media:
        # 路径需根据你的 static 目录结构调整
        css = {
            'all': ('css/custom_list.css',)  # 假设 static/css/custom_list.css 存在
        }

    # 自定义“查看详情”链接，指向只读页面
    def view_detail(self, obj):
        # 生成只读详情页的 URL（利用 Django 内置的查看权限页面）
        return format_html(
            '<a href="/admin/UserProfile/userprofile/{}/change/?readonly=1" target="_self">查看详情</a>',
            obj.id
        )
    view_detail.short_description = '操作'  # 列名

    # 控制修改页面是否只读
    def get_readonly_fields(self, request, obj=None):
        # 如果 URL 中有 readonly=1 参数，则所有字段设为只读
        if request.GET.get('readonly') == '1':
            return [field.name for field in self.model._meta.fields]
        return super().get_readonly_fields(request, obj)



admin.site.register(UserProfile,UserAdmin)